Skip to content

Fix: Return shadow host for text node in shadow root in SerializedAXNode.ElementHandle (#15451) - #3595

Merged
kblok merged 4 commits into
masterfrom
implement-upstream-change-15451
Sep 24, 2026
Merged

kblok merged 4 commits into
masterfrom
implement-upstream-change-15451

Conversation

@kblok

@kblok kblok commented Sep 23, 2026

Copy link
Copy Markdown
Member

Implements changes from puppeteer/puppeteer#15451

Returns the shadow host for a text node in a shadow root when resolving SerializedAXNode.ElementHandle.

Open in Web Open in Cursor 

cursoragent and others added 4 commits September 23, 2026 13:21
…ode.ElementHandle (#15451)

When a StaticText AX node sits directly in a shadow root, parentElement is
null. Fall back to the shadow host so ElementHandleAsync returns a usable
ElementHandle instead of a null-wrapped JSHandle.

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>
Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>
Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>
Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>
@cursor
cursor Bot marked this pull request as ready for review September 24, 2026 00:35
@kblok
kblok merged commit d9e2a71 into master Sep 24, 2026
17 checks passed
@kblok
kblok deleted the implement-upstream-change-15451 branch September 24, 2026 10:20
cursor Bot pushed a commit that referenced this pull request Sep 24, 2026
CHROME-headful-ubuntu-latest-cdp failed on tip 7836344 with
Protocol error (Target.createTarget): Failed to open a new tab, then
TargetClosedException on retries. PR only changes Firefox.DefaultBuildId;
same flake was empty-committed on sibling rolls (#3592/#3595/#3572).

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>
kblok added a commit that referenced this pull request Sep 24, 2026
* Fix: Roll Firefox DefaultBuildId to stable_156.0.1 (#15483)

Port of puppeteer/puppeteer#15483.

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* chore: retrigger CI after headful Chrome flakes

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue stuck build workflow

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue stuck matrix

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue hung firefox headful

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue hung firefox matrix

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue hung matrix

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue hung matrix

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue hung matrix

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue hung matrix

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue hung matrix

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue hung firefox headful

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue hung firefox headful

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue hung firefox headful

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: retrigger after ShouldKeepConnectedAfterTheLastPageIsClosed flake

CHROME-headful-ubuntu-latest-cdp failed on tip 7836344 with
Protocol error (Target.createTarget): Failed to open a new tab, then
TargetClosedException on retries. PR only changes Firefox.DefaultBuildId;
same flake was empty-committed on sibling rolls (#3592/#3595/#3572).

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: retrigger after CHROME-headless-ubuntu-cdp-pipe flake

Tip 9f7b38e failed on CHROME-headless-ubuntu-latest-cdp-pipe after
two full 882-pass runs aborted by host process exit, then
PageGoBackTests.ShouldWork NullReferenceException. Known Chrome NRE
cascade flake; PR only rolls Firefox.DefaultBuildId.

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

* ci: requeue hung FIREFOX-headless (≥90m stagnant)

Tip cb69e7e reached 16/17 SUCCESS; FIREFOX-headless-ubuntu-latest-webdriverbidi
stagnant ≥90m (~90.3m job). Authorized hang requeue only — no code changes.

Co-authored-by: Darío Kondratiuk <dariokondratiuk@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
sondresjolyst pushed a commit to sondresjolyst/garge-api that referenced this pull request Oct 4, 2026
Updated [PuppeteerSharp](https://github.com/hardkoded/puppeteer-sharp)
from 25.11.0 to 25.12.0.

<details>
<summary>Release notes</summary>

_Sourced from [PuppeteerSharp's
releases](https://github.com/hardkoded/puppeteer-sharp/releases)._

## 25.12.0

## What's Changed
* Update WebDriverBiDi.NET dependency to v0.0.61 by @​jimevans in
hardkoded/puppeteer-sharp#3589
* New Feature: Roll to Firefox 156.0 (#​15464) by @​kblok in
hardkoded/puppeteer-sharp#3593
* New Feature: Roll to Chrome 154.0.8037.57 (#​15484) by @​kblok in
hardkoded/puppeteer-sharp#3592
* Fix: Clean temporary profiles on process exit (#​15441) by @​kblok in
hardkoded/puppeteer-sharp#3591
* Fix: Return shadow host for text node in shadow root in
SerializedAXNode.ElementHandle (#​15451) by @​kblok in
hardkoded/puppeteer-sharp#3595
* Fix: Release the mouse button when a drag or drop fails (#​15231) by
@​kblok in hardkoded/puppeteer-sharp#3596
* chore: bump version to 25.12.0 by @​kblok in
hardkoded/puppeteer-sharp#3599
* Fix: Roll to Firefox 156.0.1 (#​15483) by @​kblok in
hardkoded/puppeteer-sharp#3598


**Full Changelog**:
hardkoded/puppeteer-sharp@v25.11.0...v25.12.0

Commits viewable in [compare
view](hardkoded/puppeteer-sharp@v25.11.0...v25.12.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=PuppeteerSharp&package-manager=nuget&previous-version=25.11.0&new-version=25.12.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants